package com.javaweb.db.help;

import com.javaweb.util.core.SnowflakeUtil;

/**
 * ID自动生成接口
 * <p>
 * 自动生成ID需要实现本接口
 * @author tank2140896
 * @param <T> ID类型
 */
@FunctionalInterface
public interface IdAutoCreate<T> {

	/**
	 * 生成ID
	 * @return T ID类型
	 */
	T idCreate();
	
	final SnowflakeUtil idWorker = new SnowflakeUtil(0, 0);
	
	/**
	 * 默认使用雪花算法
	 * @return long ID值
	 */
	default long withSnowflakeId() {
		return idWorker.nextId();
	}

}
